icon-theme: Test inheritance vs. generic fallback
authorMatthias Clasen <mclasen@redhat.com>
Sun, 21 Sep 2014 20:28:15 +0000 (16:28 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 21 Sep 2014 20:34:27 +0000 (16:34 -0400)
Add a few tests that check the behavior of icon theme inheritance
vs generic fallback vs symbolic icons.

testsuite/gtk/Makefile.am
testsuite/gtk/icons/index.theme
testsuite/gtk/icons/scalable/one-two-rtl.svg [new file with mode: 0644]
testsuite/gtk/icons/scalable/one-two.svg [new file with mode: 0644]
testsuite/gtk/icons2/index.theme [new file with mode: 0644]
testsuite/gtk/icons2/scalable/one-two-symbolic-rtl.svg [new file with mode: 0644]
testsuite/gtk/icons2/scalable/one-two-symbolic.svg [new file with mode: 0644]
testsuite/gtk/icons2/scalable/one-two-three-symbolic.svg [new file with mode: 0644]
testsuite/gtk/icontheme.c

index 0a3889d1febe78f29a8dee87de3e9dfdc2dd7dd4..7e8e50f5b2d79a013cf8376e9b3a4be4f4ecd91b 100644 (file)
@@ -152,6 +152,12 @@ test_icontheme =                                   \
        icons/16-22/size-test.png                       \
        icons/25+/size-test.svg                         \
        icons/35+/size-test.svg                         \
+       icons/scalable/one-two.svg                      \
+       icons/scalable/one-two-rtl.svg                  \
+       icons2/scalable/one-two-three-symbolic.svg      \
+       icons2/scalable/one-two-symbolic.svg            \
+       icons2/scalable/one-two-symbolic-rtl.svg        \
+       icons2/index.theme                              \
        $(NULL)
 
 EXTRA_DIST +=                          \
index dbe538c5da3135c1c0a0a346638b351f89d8814a..3156781d220159692dacd441e29851b2f45ef3a3 100644 (file)
@@ -2,6 +2,7 @@
 Name=Icons
 Comment=Testing of the Icon theme code
 Example=16x16/simple.png
+Inherits=icons2
 
 Directories=16x16,16x16s,32x32,32x32s,scalable,15,16-22,25+,35+
 
diff --git a/testsuite/gtk/icons/scalable/one-two-rtl.svg b/testsuite/gtk/icons/scalable/one-two-rtl.svg
new file mode 100644 (file)
index 0000000..eefa1e5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="128" height="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" fill="black"/>
+  <rect x="64" y="64" width="64" height="64" fill="black"/>
+</svg>
diff --git a/testsuite/gtk/icons/scalable/one-two.svg b/testsuite/gtk/icons/scalable/one-two.svg
new file mode 100644 (file)
index 0000000..eefa1e5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="128" height="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" fill="black"/>
+  <rect x="64" y="64" width="64" height="64" fill="black"/>
+</svg>
diff --git a/testsuite/gtk/icons2/index.theme b/testsuite/gtk/icons2/index.theme
new file mode 100644 (file)
index 0000000..96d6965
--- /dev/null
@@ -0,0 +1,12 @@
+[Icon Theme]
+Name=Icons2
+Comment=Testing of the Icon theme code
+
+Directories=scalable
+
+[scalable]
+Context=scalable icons
+Type=Scalable
+Size=128
+MinSize=1
+MaxSize=256
diff --git a/testsuite/gtk/icons2/scalable/one-two-symbolic-rtl.svg b/testsuite/gtk/icons2/scalable/one-two-symbolic-rtl.svg
new file mode 100644 (file)
index 0000000..eefa1e5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="128" height="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" fill="black"/>
+  <rect x="64" y="64" width="64" height="64" fill="black"/>
+</svg>
diff --git a/testsuite/gtk/icons2/scalable/one-two-symbolic.svg b/testsuite/gtk/icons2/scalable/one-two-symbolic.svg
new file mode 100644 (file)
index 0000000..eefa1e5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="128" height="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" fill="black"/>
+  <rect x="64" y="64" width="64" height="64" fill="black"/>
+</svg>
diff --git a/testsuite/gtk/icons2/scalable/one-two-three-symbolic.svg b/testsuite/gtk/icons2/scalable/one-two-three-symbolic.svg
new file mode 100644 (file)
index 0000000..eefa1e5
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="128" height="128" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" fill="black"/>
+  <rect x="64" y="64" width="64" height="64" fill="black"/>
+</svg>
index 4a3c2ccbcd3474c42a6485f332aeff0aac657313..de895c29d3831f047d71260a212458f355733863 100644 (file)
@@ -669,6 +669,35 @@ test_async (void)
   g_assert (loaded == 2);
 }
 
+static void
+test_inherit (void)
+{
+  assert_icon_lookup ("one-two-three",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK,
+                      "/icons/scalable/one-two.svg");
+  assert_icon_lookup ("one-two-three",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK | GTK_ICON_LOOKUP_DIR_RTL,
+                      "/icons/scalable/one-two-rtl.svg");
+  assert_icon_lookup ("one-two-three-symbolic",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK,
+                      "/icons2/scalable/one-two-three-symbolic.svg");
+  assert_icon_lookup ("one-two-three-symbolic",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK | GTK_ICON_LOOKUP_DIR_RTL,
+                      "/icons2/scalable/one-two-three-symbolic.svg");
+  assert_icon_lookup ("one-two-symbolic",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK,
+                      "/icons2/scalable/one-two-symbolic.svg");
+  assert_icon_lookup ("one-two-symbolic",
+                      SCALABLE_IMAGE_SIZE,
+                      GTK_ICON_LOOKUP_GENERIC_FALLBACK | GTK_ICON_LOOKUP_DIR_RTL,
+                      "/icons2/scalable/one-two-symbolic-rtl.svg");
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -686,6 +715,7 @@ main (int argc, char *argv[])
   g_test_add_func ("/icontheme/builtin", test_builtin);
   g_test_add_func ("/icontheme/list", test_list);
   g_test_add_func ("/icontheme/async", test_async);
+  g_test_add_func ("/icontheme/inherit", test_inherit);
 
   return g_test_run();
 }